package com.manage.function.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.manage.common.annotation.Excel;
import com.manage.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 审核对象 review
 *
 * @author jinghj
 * @date 2025-03-05
 */
@ApiModel(value = "Review", description = "审核对象 review 的详细信息")
public class Review extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     *
     */
    @ApiModelProperty(value = "主键id")
    private Long id;

    /**
     * 请假理由
     *
     */
    @ApiModelProperty(value = "请假理由")
    @Excel(name = "请假理由")
    private String name;

    /**
     * 请假时间
     *
     */
    @ApiModelProperty(value = "请假时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "请假时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date time;

    /**
     * 请假天数
     *
     */
    @ApiModelProperty(value = "请假天数")
    @Excel(name = "请假天数")
    private String day;

    /**
     * 请假用户id
     *
     */
    @ApiModelProperty(value = "请假用户id")
    @Excel(name = "请假用户id")
    private String username;

    /**
     * 审核状态
     *
     */
    @ApiModelProperty(value = "审核状态")
    @Excel(name = "审核状态")
    private String status;

    /**
     * 审核意见
     *
     */
    @ApiModelProperty(value = "审核意见")
    @Excel(name = "审核意见")
    private String reason;

    /**
     * 用户角色
     *
     */
    @ApiModelProperty(value = "用户角色")
    @Excel(name = "用户角色")
    private Long roleId;

    /**
     * 设置 id 的值
     * @param id id 的值
     */
    public void setId(Long id)
    {
        this.id = id;
    }

    /**
     * 获取 id 的值
     * @return id 的值
     */
    public Long getId()
    {
        return id;
    }
    /**
     * 设置 name 的值
     * @param name name 的值
     */
    public void setName(String name)
    {
        this.name = name;
    }

    /**
     * 获取 name 的值
     * @return name 的值
     */
    public String getName()
    {
        return name;
    }
    /**
     * 设置 time 的值
     * @param time time 的值
     */
    public void setTime(Date time)
    {
        this.time = time;
    }

    /**
     * 获取 time 的值
     * @return time 的值
     */
    public Date getTime()
    {
        return time;
    }
    /**
     * 设置 day 的值
     * @param day day 的值
     */
    public void setDay(String day)
    {
        this.day = day;
    }

    /**
     * 获取 day 的值
     * @return day 的值
     */
    public String getDay()
    {
        return day;
    }
    /**
     * 设置 username 的值
     * @param username username 的值
     */
    public void setUsername(String username)
    {
        this.username = username;
    }

    /**
     * 获取 username 的值
     * @return username 的值
     */
    public String getUsername()
    {
        return username;
    }
    /**
     * 设置 status 的值
     * @param status status 的值
     */
    public void setStatus(String status)
    {
        this.status = status;
    }

    /**
     * 获取 status 的值
     * @return status 的值
     */
    public String getStatus()
    {
        return status;
    }
    /**
     * 设置 reason 的值
     * @param reason reason 的值
     */
    public void setReason(String reason)
    {
        this.reason = reason;
    }

    /**
     * 获取 reason 的值
     * @return reason 的值
     */
    public String getReason()
    {
        return reason;
    }
    /**
     * 设置 roleId 的值
     * @param roleId roleId 的值
     */
    public void setRoleId(Long roleId)
    {
        this.roleId = roleId;
    }

    /**
     * 获取 roleId 的值
     * @return roleId 的值
     */
    public Long getRoleId()
    {
        return roleId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("time", getTime())
                .append("day", getDay())
                .append("username", getUsername())
                .append("status", getStatus())
                .append("reason", getReason())
                .append("roleId", getRoleId())
                .toString();
    }
}
